﻿'######################################################################################################################################
'# CLASSE GESTION XML:
'#  - Lecture et enregistrement des fichiers .smc
'######################################################################################################################################
Imports System.IO
Imports System.Xml

Public Class Gestion_XML
    Private _Parent As Plugin

    Public Structure STRUC_XML_smc
        Dim Vu As Integer
        Dim Position As Integer
        Dim DVDPosition As String
        Dim Duree As Integer
        Dim Synopsis As String
    End Structure

    '######################################################################################################################################
    '# Constructeur
    '######################################################################################################################################
    Public Sub New(ByVal CLASS_Param1 As Plugin)
        _Parent = CLASS_Param1
    End Sub
    '######################################################################################################################################

    '######################################################################################################################################
    '# Lit les valeurs du fichier .smc
    '######################################################################################################################################
    Function LireElements(ByVal STR_PARAM1 As String)
        MediaPortal.GUI.Library.Log.Debug("[SMC] Gestion_XML.vb >> Execution de LireElements()", "")
        Dim XmlDoc As XmlTextReader
        Dim Retour As STRUC_XML_smc
        Dim STR_Valeur As String

        Retour.Vu = 0
        Retour.Position = -1
        Retour.DVDPosition = ""
        Retour.Duree = -1
        Retour.Synopsis = ""
        If File.Exists(STR_PARAM1) Then
            XmlDoc = New XmlTextReader(STR_PARAM1)
            XmlDoc.WhitespaceHandling = WhitespaceHandling.Significant
            XmlDoc.ReadToFollowing("VU")
            STR_Valeur = XmlDoc.ReadString
            If STR_Valeur <> "" Then If IsNumeric(STR_Valeur) Then Retour.Vu = STR_Valeur
            XmlDoc.ReadToFollowing("POSITION")
            STR_Valeur = XmlDoc.ReadString
            If STR_Valeur <> "" Then If IsNumeric(STR_Valeur) Then Retour.Position = STR_Valeur
            XmlDoc.ReadToFollowing("DVDPOSITION")
            Retour.DVDPosition = XmlDoc.ReadString
            XmlDoc.ReadToFollowing("DUREE")
            STR_Valeur = XmlDoc.ReadString
            If STR_Valeur <> "" Then If IsNumeric(STR_Valeur) Then Retour.Duree = STR_Valeur
            XmlDoc.ReadToFollowing("SYNOPSIS")
            Retour.Synopsis = XmlDoc.ReadString
            XmlDoc.Close()
        End If

        Return Retour
    End Function
    '######################################################################################################################################

    '######################################################################################################################################
    '# Ecrit les valeurs dans le fichier .smc
    '######################################################################################################################################
    Sub EcrireElements(ByVal STR_PARAM1 As String, ByVal STRUC_PARAM2 As STRUC_XML_smc)
        MediaPortal.GUI.Library.Log.Debug("[SMC] Gestion_XML.vb >> Execution de EcrireElements()", "")
        Dim XmlDoc As XmlTextWriter

        XmlDoc = New XmlTextWriter(STR_PARAM1, System.Text.Encoding.UTF8)
        XmlDoc.Formatting = Formatting.Indented
        XmlDoc.WriteStartElement("SMC")
        XmlDoc.WriteElementString("VU", STRUC_PARAM2.Vu)
        XmlDoc.WriteElementString("POSITION", STRUC_PARAM2.Position)
        XmlDoc.WriteElementString("DVDPOSITION", STRUC_PARAM2.DVDPosition)
        XmlDoc.WriteElementString("DUREE", STRUC_PARAM2.Duree)
        XmlDoc.WriteElementString("SYNOPSIS", STRUC_PARAM2.Synopsis)
        XmlDoc.WriteEndElement()
        XmlDoc.Flush()
        XmlDoc.Close()
    End Sub
    '######################################################################################################################################

End Class
